<?php
//静态变量是在函数内部使用 static 关键字声明的变量。
//用途
// 1.计数：如上述示例所示，可以用于跟踪函数被调用的次数。
// 2.缓存数据：在一些复杂的计算函数中，可以将中间结果存储在静态变量中，避免重复计算。
// 3.实现单例模式的辅助：虽然 PHP 有更直接的方式实现单例模式，但静态变量可以在某些情况下作为实现单例的一部分，用于存储唯一的实例。
//特点：持久性：静态变量在函数调用之间保持其值。也就是说，第一次调用函数时初始化静态变量后，在后续对该函数的调用中，静态变量将保留上次调用结束时的值。
function demo() {
    //局部变量，函数执行完毕就释放回收
    $st = 1;
    echo $st;
    $st++;
}

demo();

demo();
echo "<hr/>";


//在这个例子中，函数 counter 每次被调用时，静态变量 $count 的值都会增加并输出。由于静态变量的持久性，它的值在不同的函数调用之间得以保留。
function counter() {
    static $count = 0;
    $count++;
    echo $count. "<br>";
}

counter(); // 输出 1
counter(); // 输出 2
counter(); // 输出 3
echo "<hr/>";

//通过全局变量实现
$st = 0;//定义全局变量
function demo1() {
    //局部变量，函数执行完毕就释放回收
    global $st;
    echo $st;
    $st++;
    echo "<br/>";
}

$st = 100;//全局变量的缺点就是可以修改
demo1();

demo1();
echo "<hr/>";